home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / x86 / include / asm / suspend_32.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.3 KB  |  52 lines

  1. /*
  2.  * Copyright 2001-2002 Pavel Machek <pavel@suse.cz>
  3.  * Based on code
  4.  * Copyright 2001 Patrick Mochel <mochel@osdl.org>
  5.  */
  6. #ifndef _ASM_X86_SUSPEND_32_H
  7. #define _ASM_X86_SUSPEND_32_H
  8.  
  9. #include <asm/desc.h>
  10. #include <asm/i387.h>
  11.  
  12. static inline int arch_prepare_suspend(void) { return 0; }
  13.  
  14. /* image of the saved processor state */
  15. struct saved_context {
  16.     u16 es, fs, gs, ss;
  17.     unsigned long cr0, cr2, cr3, cr4;
  18.     struct desc_ptr gdt;
  19.     struct desc_ptr idt;
  20.     u16 ldt;
  21.     u16 tss;
  22.     unsigned long tr;
  23.     unsigned long safety;
  24.     unsigned long return_address;
  25. } __attribute__((packed));
  26.  
  27. #ifdef CONFIG_ACPI
  28. extern unsigned long saved_eip;
  29. extern unsigned long saved_esp;
  30. extern unsigned long saved_ebp;
  31. extern unsigned long saved_ebx;
  32. extern unsigned long saved_esi;
  33. extern unsigned long saved_edi;
  34.  
  35. static inline void acpi_save_register_state(unsigned long return_point)
  36. {
  37.     saved_eip = return_point;
  38.     asm volatile("movl %%esp,%0" : "=m" (saved_esp));
  39.     asm volatile("movl %%ebp,%0" : "=m" (saved_ebp));
  40.     asm volatile("movl %%ebx,%0" : "=m" (saved_ebx));
  41.     asm volatile("movl %%edi,%0" : "=m" (saved_edi));
  42.     asm volatile("movl %%esi,%0" : "=m" (saved_esi));
  43. }
  44.  
  45. #define acpi_restore_register_state()  do {} while (0)
  46.  
  47. /* routines for saving/restoring kernel state */
  48. extern int acpi_save_state_mem(void);
  49. #endif
  50.  
  51. #endif /* _ASM_X86_SUSPEND_32_H */
  52.